package com.tedu.api.list;

import java.util.Collection;

/**
 *         测试：  创建父类：Fruit--属性：name 名字  |   方法
 *        创建两个子类：Apple、Orange--构造器：传水果名
 *        创建类：TestJob类  泛型  ？  extends  父类
 *          约束---静态的方法printFruit()
 *          约束只能是继承父类的子类才可以使用
 *          单元测试：testE()测试--约束是否限制成功
 *          实际开发应用中，高级程序员制定！
 *          限定传入子类一定继承父类操作+
 */

public class Fruit {
    private String name;   //私有属性  name

    public String getName(){
        return name;
    }

    public Fruit(String name) {
        this.name = name;
    }
}
//创建两个子类：Apple和Orange继承Fruit
class Apple extends Fruit{
    public Apple() {//Apple a=new Apple(); 打印水果名称
        super("苹果");
    }
}
class Orange extends Fruit{
    public Orange() {
        super("橘子");
    }
}
//创建TestJob类--静态方法 printFruit：添加约束：传入类型一定是父亲的子类
class TestJob{//？【任意类型】extends Fruit父类
    public static void printFruit(Collection<?extends Fruit>fruits){
        //增强for循环：父类Fruit 名称
        for(Fruit fruit:fruits){//获取继承【Apple、Orange】与父类的功能
            //打印对应对象名称
            System.out.println(fruit.getName());

        }
    }

}


